package net.xdclass.onlinexdclass.templates;

import com.google.common.cache.Cache;
import com.google.common.cache.CacheBuilder;
import lombok.Data;
import org.springframework.stereotype.Component;

import java.util.concurrent.TimeUnit;

/**
 * Guava本地缓存配置
 */
@Component
@Data
public class GuavaBaseCacheTemplate {

    //10秒缓存过期
    private Cache<String, Object> tenSecondsCache = CacheBuilder.newBuilder()
            //设置初始容量
            .initialCapacity(10)
            //设置最大值
            .maximumSize(100)
            //设置并发数
            .concurrencyLevel(5)
            //设置缓存的过期时间
            .expireAfterWrite(10, TimeUnit.SECONDS)
            //统计缓存命中率
            .recordStats()
            .build();



    //一小时缓存过期
    private Cache<String, Object> onHourCache = CacheBuilder.newBuilder()
            //设置初始容量
            .initialCapacity(10)
            //设置最大值
            .maximumSize(100)
            //设置并发数
            .concurrencyLevel(5)
            //设置缓存的过期时间 10分钟600秒
            .expireAfterWrite(3600, TimeUnit.SECONDS)
            //统计缓存命中率
            .recordStats()
            .build();



    //10分钟缓存过期
    private Cache<String, Object> tenMinuteCache = CacheBuilder.newBuilder()
            //设置初始容量
            .initialCapacity(30)
            //设置最大值
            .maximumSize(100)
            //设置并发数
            .concurrencyLevel(5)
            //设置缓存的过期时间
            .expireAfterWrite(600, TimeUnit.SECONDS)
            //统计缓存命中率
            .recordStats()
            .build();

}
